define([
    'jquery', 'Schedule', '../Mock/preset', 'EasyWebApp'
],  function ($, Schedule, iPreset) {

    $.ajaxSetup({
        dataFilter:    function (iData) {
            if (! this.url.match(/\/[^\.]+(\.json)?\??/))
                return iData;

            iData = JSON.parse( iData );

            if ( iData.code )
                self.alert( iData.message );
            else {
                if (this.type.toUpperCase() != 'GET')
                    self.alert( iData.message );

                iData = iData.data || { };
            }

            return  JSON.stringify( iData );
        }
    });

    $(document).ready(function () {

        $('body > div').iWebApp();

        var iSchedule = (new Schedule('table > tbody',  function () {
                return Boolean(
                    self.alert(arguments[0].name + " 与已选课程时间冲突……")
                );
            })).on('afterRender',  function () {

                var $_Cell = this.$_View.find('td');

                $_Cell.not(
                    $_Cell.filter(':empty').removeAttr('title')
                ).attr('title', "双击删除");

            }).render( iPreset.schedule );

        iSchedule.$_View.on('dblclick',  'td',  function () {

            iSchedule.remove( this );
        });

        var iResult = $.ListView('[name="sResult"] > ul');

        iResult.$_View.on('click',  'li',  function () {

            iSchedule.render([iResult.valueOf( this )]);

            iResult.clear().$_View.scrollParents().eq(0).scrollTo(
                iResult.$_View
            );
        });

        $('#Search').submit(function () {

            iResult.$_View.show();
        });
    });
});